﻿using System.Collections.Generic;

namespace POS.BusinessEntities
{
    public enum PermisoTipo
    {
        Menu,
        Accion
    }

    public class BEPermiso
    {   
        public BEPermiso(string llave, string nombre, PermisoTipo tipo)
        {
            Codigo = llave;
            Nombre = nombre;
            Tipo = tipo;
        }

        public BEPermiso()
        {
        }
        
        public string Codigo { get; set; }
        public string Nombre { get; set; }
        public PermisoTipo Tipo { get; set; }

        public override bool Equals(object obj)
        {
            if (obj.GetType() != typeof(BEPermiso)) 
                return false;

            var menu2 = (BEPermiso) obj;
            return (menu2.Codigo == Codigo && menu2.Tipo == Tipo && menu2.Nombre == Nombre);
        }
    }

    public class BEPermisoCollection: List<BEPermiso>
    {
        public override bool Equals(object obj)
        {
            if (obj.GetType() != typeof(BEPermisoCollection) && ((BEPermisoCollection)obj).Count != Count) 
                return false;

            var menuList2 = (BEPermisoCollection)obj;

            for(int i = 0; i < Count; i++)
            {
                if (!this[i].Equals(menuList2[i]))
                    return false;
            }
            return true;
        }
    }
}
